Diese materialbezogenen Werkzeuge werden zwar nicht vom Arbeitsbereich Material bereitgestellt, sind jedoch im Kern von FreeCAD enthalten und können ohne Laden des Arbeitsbereichs verwendet werden:
Material: Weist den ausgewählten Objekten ein Material zu.
Darstellung: Legt die Anzeige-Eigenschaften ausgewählter Objekte fest. Wird häufig nach dem Anwenden eines Materials verwendet, wenn ein bestimmtes Material keine Darstellungs-Eigenschaften definiert.
Dieser Leitfaden erläutert die Kernkonzepte und Arbeitsabläufe für die Verwendung des Materialsystems in FreeCAD. Er behandelt die verschiedenen Werkzeuge, Eigenschaften und wichtigen technischen Details sowohl für die interaktive als auch für die skriptgesteuerte Verwendung.
Material-Werkzeuge
Material-Editor
Verwendung: Die Schaltfläche Bearbeiten im Arbeitsbereich Material drücken.
Zweck: Der Material-Editor ist ein Werkzeug zum Materialien definieren und verwalten. Seine einzige Funktion besteht darin, neue Materialien zu erstellen, die Eigenschaften bestehender Materialien zu bearbeiten und diese zu organisieren.
Verhalten:
Es ist vom 3D-Modell getrennt; die Auswahl eines Objekts im Dokument hat keine Auswirkungen auf den Editor.
Man kann in diesem Fenster kein Material einem Objekt zuweisen. Das Drücken der Schaltfläche OK schließt einfach den Editor.
Material-Auswahl
Verwendung: Ein oder mehrere Objekte in der 3D-Ansicht oder der Baumansicht auswählen, dann die Option Material aus dem Kontextmenü wählen.
Zweck: Dieses Werkzeug wird verwendet, um Objekten ein Material zuzuweisen.
Verhalten:
Es öffnet sich ein Aufgaben-Fenster mit einer Materialbrowser-Struktur.
Die Schaltfläche Editor starten startet den Material-Editor, um ein Material zu bearbeiten oder zu erstellen.
Wenn man ein Material im Materialbrowserbaum auswählt, werden dessen Eigenschaften sofort auf die ausgewählten Objekte angewendet. Dies ist der erforderliche Schritt, um die physikalischen Daten eines Materials mit einem Teil zu verknüpfen.
Physikalische vs. Darstellungs-Eigenschaften
Ein Material in FreeCAD wird durch zwei unterschiedliche Eigenschaftssätze definiert:
Physikalische Eigenschaften: Diese definieren die technischen Eigenschaften eines Materials, die für Berechnungen und Simulationen verwendet werden (z. B. im Arbeitsbereich FEM). Beispiele hierfür sind Density, YoungsModulus, und PoissonRatio.
Darstellungs-Eigenschaften: Diese definieren das visuelle Erscheinungsbild eines Materials für Rendering-Zwecke. Beispiele hierfür sind DiffuseColor, Shininess, und Transparency.
Ein Material muss nicht beides aufweisen. Einige Materialien sind möglicherweise nur für die Analyse definiert (nur mit physikalischen Eigenschaften), während andere nur für die Visualisierung definiert sind (nur mit Darstellungs-Eigenschaften).
Material-Darstellung überschreiben
Die endgültige Darstellung eines Objekts wird durch eine Hierarchie bestimmt. Die in einem Material festgelegten visuellen Eigenschaften können durch lokale Einstellungen am Objekt selbst überschrieben werden.
Wie man überschreibt: Die Option Darstellung festlegen aus dem Kontextmenü des Objekts in der Baumansicht oder der 3D-Ansicht auswählen. Alle hier vorgenommenen Änderungen haben Vorrang vor den Darstellungseigenschaften des zugewiesenen Materials.
Vorbehalte: Dies kann zu Verwirrung führen. Wenn man einem Objekt ein Material zugewiesen hat, dessen Farbe sich jedoch nicht ändert, liegt dies wahrscheinlich daran, dass für das Objekt eine lokale Überschreibung des Erscheinungsbilds vorgenommen wurde. In der Benutzeroberfläche gibt es keinen eindeutigen visuellen Hinweis darauf, dass eine Überschreibung aktiv ist.
Wie man eine Überschreibung zurücksetzt: Um das Erscheinungsbild des Materials wiederherzustellen, kann man das Werkzeug Darstellung festlegen erneut verwenden und das Material erneut auswählen, um seine Darstellungseigenschaften zuzuordnen.
Eigenschaften
Wenn ein Material zugewiesen wird, verknüpft FreeCAD die Daten mit dem Objekt und seinem Viewprovider mithilfe von zwei Eigenschaften.
Daten-EigenschaftShape Material: Dies ist die wichtigste Eigenschaft. Sie wird hinzugefügt zum Dokumentobjekt. Es enthält eine Verknüpfung zu einem vollständigen Materials::Material-Objekt, Zugriff auf alle physikalischen und optischen Daten für Berechnungen und Skripterstellung gewähren. Dies ist eine versteckte Eigenschaft.
Ansicht-EigenschaftShape Appearance: Diese Eigenschaft befindet sich im "Viewprovider" des Objekts. Es handelt sich um eine Liste, die die endgültige Darstellung des Objekts in der 3D-Ansicht steuert und die geändert wird, wenn das Darstellungs-Aufgaben-Fenster benutzt wird.
Ausdrücke
Auf Material-Eigenschaftswerte kann mithilfe von Ausdrücken zugegriffen werden, was besonders im Arbeitsbereich Spreadsheet nützlich ist. Um sicherzustellen, dass man eine verwendbare numerische Größe anstelle einer Textzeichenfolge erhält, muss das PropertyObjects-Dictionary verwendet werden.
❌ Fehlerhafte Methode (gibt Text zurück): Das Benutzen des PhysicalProperties-Dictionary, gibt eine Zeichenkette mit Einheiten zurück, die in nachfolgenden Formeln nicht genutzt werden kann.
✅ Korrekte Methode (gibt eine Quantity zurück): Das Benutzen des PropertyObjects-Dictionary und der Zugriff auf seine Value-Attribute, gibt ein vollständiges Quantity-Objekt zurück, das direkt in Berechnungen verwendet werden kann.
→ Gibt ein Quantity-Objekt zurück, das die Tabelle numerisch verwenden kann.
Wenn sich dieser Wert in der Zelle A1 der Tabelle befindet, kann man eine Formel in Zelle A2 wie = A1 * 10 schreiben, und es wird korrekt verwendet.
Skripten
Materialeigenschaften können mithilfe von Python-Skripten abgerufen und festgelegt werden. Die wichtigsten Methoden sind .getPhysicalValue() und .setPhysicalValue().
importFreeCADimportFreeCADGui# Get a reference to your object (e.g., a PartDesign Body)obj=App.ActiveDocument.getObject("Body")# --- Check for and get a property ---ifobj.ShapeMaterial.hasPhysicalProperty("Density"):# Get the value. This returns a FreeCAD.Quantity object.density_quantity=obj.ShapeMaterial.getPhysicalValue("Density")print(f"The material is: {obj.ShapeMaterial.Name}")print(f"The density is: {density_quantity}")print(f"Numerical value: {density_quantity.Value}")else:print("The selected material does not have a 'Density' property.")# --- Set a property ---# The value can be a string with units or a FreeCAD.Quantity object.try:obj.ShapeMaterial.setPhysicalValue("Density","8000 kg/m^3")App.ActiveDocument.recompute()print("Density successfully updated.")exceptExceptionase:print(f"Failed to set property: {e}")